package cn.lingyangwl.agile.gateway.model.ram;

import cn.lingyangwl.agile.model.*;
import cn.lingyangwl.agile.model.constants.*;
import cn.lingyangwl.framework.mybatis.mate.annotations.*;
import cn.lingyangwl.framework.validation.group.*;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @author shenguangyang
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RamModule extends BasePlusPO {

    @TableId
    @NotNull(message = ValidationCons.NOT_EMPTY, groups = {UpdateGroup.class})
    private Long id;

    /**
     * 模块编码(一般为名称首字母即 RamApiResource#getAction 第一段), 且不可改变
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    @FieldUnique(message = "字典模块编码已存在")
    private String code;

    /**
     * 服务标识符, 这里指的是服务url的一级路径
     */
    private String serviceCode;

    /**
     * 模块名称
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String name;
}
